Handle translated combobox models better
authorMatthias Clasen <mclasen@redhat.com>
Mon, 4 May 2009 02:50:27 +0000 (22:50 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 4 May 2009 02:50:27 +0000 (22:50 -0400)
Make gtk-builder-convert keep translated combobox models translated.
Fixes bug 553385.

gtk/gtk-builder-convert

index c6b36578b5f4d520d81960023d2750d032ddbeb9..a641b3385dd73d18957f1b82ae6e63de14666b22 100755 (executable)
@@ -546,6 +546,14 @@ class GtkBuilderConverter(object):
         if not prop.childNodes:
             parent.removeChild(prop)
             return
+
+        translatable_attr = prop.attributes.get('translatable')
+        translatable = translatable_attr is not None and translatable_attr.value == 'yes'
+        has_context_attr = prop.attributes.get('context')
+        has_context = has_context_attr is not None and has_context_attr.value == 'yes'
+        comments_attr = prop.attributes.get('comments')
+        comments = comments_attr is not None and comments_attr.value or None
+
         value = prop.childNodes[0].data
         model = self._create_root_object("GtkListStore",
                                          template="model")
@@ -568,7 +576,15 @@ class GtkBuilderConverter(object):
 
             col = self._dom.createElement('col')
             col.setAttribute('id', '0')
-            col.setAttribute('translatable', 'yes')
+            if translatable:
+                col.setAttribute('translatable', 'yes')
+            if has_context:
+                splitting = item.split('|', 1)
+                if len(splitting) == 2:
+                    context, item = splitting
+                    col.setAttribute('context', context)
+            if comments is not None:
+                col.setAttribute('comments', comments)
             col.appendChild(self._dom.createTextNode(item))
             row.appendChild(col)